package com.foo.designpattern.facade;

import junit.framework.TestCase;

/**
 * com.foo.designpattern.facade
 * Created with IntelliJ IDEA.
 * Created by jiang on 2016/4/19 23:38.
 *
 * @Description 测试类：门面模式
 * 测试角色:通过安全门面来调用各个子系统
 * 门面模式应用场景：为复杂的子系统提供一个简单的接口
 * 门面模式包括两种角色：门面角色和子系统角色
 * 门面角色：客户端可以调用的方法，此角色知晓一个或多个子系统角色的功能和责任，门面模式所有的请求处理都通过门面角色委托给子系统完成。
 * 子系统角色：子系统并不知道门面的存在，对于子系统而言，门面仅仅是另外一个客户端而已。
 * 测试用例：门卫通常需要操作多种仪器，包括每种仪器的具体操作，这样子对于门卫来说工作量就增加了很多，
 * 出错的概率也变大了，一个合理的设计就是，为门卫设计一个同意控制的操作台，简化工作降低出错率。
 */
public class FacadeTestCase extends TestCase {
    public void testFacade() {
        System.out.println("= = = = ↓↓↓门面模式，测试开始↓↓↓ = = = =");

        SecurityFacade sf = new SecurityFacade();
        sf.active();
        sf.inactive();

        System.out.println("= = = = ↑↑↑门面模式，测试结束↑↑↑ = = = =");
    }
}
